// VolumeManager.cpp: implementation of the VolumeManager class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "phsshare.h"
#include "VolumeManager.h"
#include "VolumeGenerator.h"
#include "Project.h"
#include "PersistentObjectManager.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

VolumeManager::VolumeManager()
{
	m_pCurVolume = NULL;
}

VolumeManager::~VolumeManager()
{
	
}

Volume* VolumeManager::CurVolume()
{
	return m_pCurVolume;
}

void VolumeManager::SetCurVolume(Volume* pVolume)
{
	ASSERT(pVolume);
	m_pCurVolume = pVolume;
}

void VolumeManager::AddVolume(Volume* pVolume)
{
	ASSERT(pVolume);
	ASSERT(this->project());

	pVolume->project(this->project());
/*	if(pVolume->VolumeID() == ObjectNoSerialNumber)
	{
		INT nIndex = GenerateIndex();
		pVolume->VolumeID(nIndex);
	}

	this->Add(pVolume->VolumeID(), pVolume);*/
	
	project()->GetPersistentObjectManager().Add(pVolume);

	this->Add(pVolume->Id(), pVolume->Id());
}

Volume* VolumeManager::GetVolume(INT nKey)
{
	return GetManaged(nKey);
}